package com.tucy.logistics.common.entity.vehicle;

import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tucy.logistics.common.base.BaseEntity;
import com.tucy.logistics.common.entity.user.SystemFile;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

/**
* 车辆行驶证信息表
* @TableName vehicle_license
*/
@Setter
@Getter
@TableName("vehicle_license")
public class VehicleLicense extends BaseEntity implements Serializable {

    /**
    * 车辆系统编号
    */
    @NotNull(message="[车辆系统编号]不能为空")
    @ApiModelProperty("车辆系统编号")
    private Long id;
    /**
    * 关联车牌
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("关联车牌")
    @Length(max= 40,message="编码长度不能超过40")
    private String vehicleNumber;
    /**
    * 行驶证号码
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("行驶证号码")
    @Length(max= 255,message="编码长度不能超过255")
    private String licenseNumber;
    /**
    * 发动机号码
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("发动机号码")
    @Length(max= 255,message="编码长度不能超过255")
    private String engineNumber;
    /**
    * 整备质量
    */
    @ApiModelProperty("整备质量")
    private BigDecimal wholeWeight;
    /**
    * 核定载重
    */
    @ApiModelProperty("核定载重")
    private BigDecimal checkLoadWeight;
    /**
    * 注册时间
    */
    @ApiModelProperty("注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date registerTime;
    /**
    * 报废时间
    */
    @ApiModelProperty("报废时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date invalidTime;
    /**
    * 说明
    */
    @Size(max= -1,message="编码长度不能超过-1")
    @ApiModelProperty("说明")
    @Length(max= -1,message="编码长度不能超过-1")
    private String remark;

    @ApiModelProperty("附件")
    @TableField(exist = false)
    private List<SystemFile> licenseFiles;
}
